blog[freezed]

Pytest à l’échelle : de 100 à 10 000 à 1 000 000 de tests

dans Bloc-notes

Par Rémy DUTHU

Pytest à l’échelle : de 100 à 10 000 à 1 000 000 de tests

logo PyConFr Lyon 2026

Salle MARI/SUGGAR - dimanche 1 novembre 2026 à 15:00 - 25 min

Une suite de 100 tests et une suite d’un million de tests ne se pilotent pas pareil. Cette conférence parcourt les trois ordres de grandeur : ce qui casse à chaque palier, et les stratégies pytest pour tenir. À 100 tests, pytest « juste marche ». À 10 000, le temps de collection, les fixtures partagées et la parallélisation (pytest-xdist) deviennent des sujets. À 1 000 000, on change de monde : sharding, exécution distribuée, sélection de tests par impact, cache, et surtout la lutte contre les tests instables (« flaky ») qui, à cette échelle, rendent une suite verte statistiquement impossible sans détection ni quarantaine automatiques. Palier par palier : 100 → bonnes fixtures, parametrize, structure de suite. 10k → temps de collection, xdist, isolation, markers, temps de CI. 1M → sharding, distribution, test selection, observabilité de la suite, détection et quarantaine des tests instables.


Suppport de présentation (à venir)

Notes personnelles :

  • ? documenter les durations de test ?
  • tester encore plus les nouveaux tests, qui sont des candidats a la flakyness
  • mettre en quarantaine les test flaky
  • mettre en cache des résultats de test (Bazel, Pants)
  • test l'historique après le merge
  • pytest-split, pytest-randomly, pytest-timeout, pytest-picked, pytest-testmon, pytest-socket, pytest-xdist, pytest-rerunfailures, pytest-repeat, pytest-impacted, pytest-cov, time-machine